/**
 * 上传控件 依赖文件： jquery/jquery-1.11.2.min.js meeting/meeting.core.js
 * 
 */
(function(mt) {

	function createUploader(el, path, server, option) {
		var defaultoption = {
			// 选完文件后，是否自动上传。
			auto : true,
			// swf文件路径
			// swf : path + '/static/controls/webuploader/Uploader.swf',
			// 文件接收服务端。
			server : server,
			// 选择文件的按钮。可选。
			// 内部根据当前运行是创建，可能是input元素，也可能是flash.
			pick : el
		// 只允许选择图片文件。
		// fileSingleSizeLimit : 10
		};

		$.extend(true, defaultoption, option);
		// 文件上传
		var uploader = WebUploader.create(defaultoption);

		return uploader;
	}

	mt.uploadfiles = function(el, path, server, option, successcallback, delcallback) {

		if (option == null || option == "undefined") {
			option = {};
		}

		var uploader = createUploader(el, path, server, option);
		// 绑定上传按钮事件
		$(el.replace("Hid", "")).on("click", function() {
			$(el).find("label").click();
		});
		// 文件上传成功，给item添加成功class, 用样式标记上传成功。
		uploader.on('uploadSuccess', function(file, data) {
			console.log(data.data);
			var filepanelspan = $('<span class="block mtfile mticon-input mticon-input-right"></span>');
			var filespan = $('<span class="filename">' + data.data.replace("/static/file/upload/", "") + '</span>');
			var filedel = $('<i class="mtfa mt-del mtpointer mtblue" onclick="meeting.deluploadfiles(this,' + delcallback + ')"></i>');
			var filehid = $('<input type="hidden" class="filehid" value="' + data.data + '">');
			filepanelspan.append(filespan).append(filedel).append(filehid);
			$(el.replace("Hid", "")).parent().before(filepanelspan);
			successcallback(file, data);
		});

		// 文件上传失败，显示上传出错。
		uploader.on('uploadError', function(file, reason) {
			console.log(reason);

			var $li = $('#' + file.id), $error = $li.find('div.error');

			// 避免重复创建
			if (!$error.length) {
				$error = $('<div class="error"></div>').appendTo($li);
			}

			$error.text('上传失败');
		});

		return uploader;
	};

	mt.deluploadfiles = function(obj, callback) {
		$(obj).parent().remove();
		callback();
	}

	mt.uploadimg = function(el, path, server, option, successcallback, delcallback) {

		if (option == null || option == "undefined") {
			option = {};
		}

		option.fileNumLimit = 1;
		option.accept = {
			title : 'Images',
			extensions : 'gif,jpg,jpeg,bmp,png',
			mimeTypes : 'image/jpg,image/jpeg,image/png'
		};

		var uploader = createUploader(el, path, server, option);
		// 绑定上传按钮事件
		$(el.replace("Hid", "")).on("click", function() {
			$(el).find("label").click();
		});
		// 文件上传成功，给item添加成功class, 用样式标记上传成功。
		uploader.on('uploadSuccess', function(file, data) {
			console.log(data.data);
			var img = $("<img />");
			img.attr("src", path + data.data);
			var tool = $("<div></div>");
			tool.addClass("mtimagetool");
			tool.html('<i class="mtfa mt-eye mtpointer"></i><i class="mtfa mt-del mtpointer" onclick="meeting.deluploadimg(this,' + delcallback + ')"></i>');
			$(el.replace("Hid", "")).hide();
			$(el).parent().append(img).append(tool);
			successcallback(file, data);
		});

		// 文件上传失败，显示上传出错。
		uploader.on('uploadError', function(file, reason) {
			console.log(reason);

			var $li = $('#' + file.id), $error = $li.find('div.error');

			// 避免重复创建
			if (!$error.length) {
				$error = $('<div class="error"></div>').appendTo($li);
			}

			$error.text('上传失败');
		});

		return uploader;
	}

	mt.deluploadimg = function(obj, callback) {
		$(obj).parent().parent().find(".uploadbtn").show();
		$(obj).parent().parent().find("img").remove();
		$(obj).parent().remove();
		callback();
	}
}(meeting));